在二分类问题中,输出$y\in {0, 1}$。同样的,我们也可以用线性拟合来尝试解决二分类问题(如下图左),但数据点比较异常时,容易出现下图右这样的情况:

一般,在二分类问题中,我们会选用『logistic函数』来拟合(因为形状像S,又称为『sigmoid函数』): $$ h_\theta (x)=g(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}} $$ logistic函数$g(z)=1/(1+e^{-z})​$的形状如下: 可以定义 $$ \begin{align} P(y=1|x;\theta)& =h_\theta (x) \\ P(y=0|x;\theta)& =1-h_\theta(x) \end{align} $$ 于是: $$ P(y|x;\theta)=h_\theta(x)^y(1-h_\theta(x))^{(1-y)} $$ 进行极大似然估计: $$ L(\theta)=P(y|x;\theta)=\prod_{i=1}^mP(y^{(i)}|x^{(i)};\theta)=\prod_{i=1}^mh_\theta(x^{(i)})^{y^{(i)}}(1-h_\theta(x^{(i)}))^{(1-y^{(i)})} $$ 为了计算方便,定义 $$ \begin{align} l(\theta)&=log(L(\theta))\\ &=\sum_{i=1}^mlog(P(y^{(i)}|x^{(i)};\theta))\\ &=\sum_{i=1}^m(y^{(i)}\cdot log(h_\theta(x^{(i)}))+(1-y^{(i)})\cdot log(1-h_\theta(x^{(i)}))) \end{align} $$ 利用梯度上升进行求解: $$ \theta := \theta + \alpha \nabla_\theta l(\theta) $$ 其中 $$ \nabla_{\theta_j} l(\theta)=\frac{\partial}{\partial\theta_j}l(\theta)=\sum_{i=1}^m(y^{(i)}-h_\theta(x^{(i)}))\cdot x_j^{(i)}\\ \theta_j:=\theta_j+\alpha \cdot \sum_{i=1}^m(y^{(i)}-h_\theta(x^{(i)}))\cdot x_j^{(i)} $$ 最终的梯度上升结果几乎与线性拟合中的梯度下降结果一样。


Copyright 2017-2019, All Rights Reserved.
粤ICP备18085907号 深圳市磐创网络科技有限公司

Documentation built with MkDocs.